// 员工管理相关类型定义

/**
 * 员工信息接口
 */
export interface Employee {
  /** 员工ID */
  empId: number;
  /** 工号 */
  empNo: string;
  /** 员工名称 */
  empName: string;
  /** 性别 */
  gender: string | null;
  /** 在职状态 1-在职 0-离职 */
  isEnabled: string;
  /** 手机号 */
  phone: string;
  /** 所属科室ID */
  deptId: number;
  /** 所属科室名称 */
  deptName: string;
  /** 职称 */
  title: string;
  /** 是否管理员 1-是 0-否 */
  isAdmin: string;
  /** 授权的角色列表 */
  roleList: Role[];
  /** 身份证号 */
  idCard: string | null;
  /** 阳历生日 */
  solarBirthday: string | null;
  /** 阴历生日 */
  lunarBirthday: string | null;
  /** 入职日期 */
  hireDate: string | null;
  /** 籍贯省 */
  nativeProvince: string | null;
  /** 籍贯市 */
  nativeCity: string | null;
  /** 籍贯县 */
  nativeCounty: string | null;
  /** 住址省 */
  homeProvince: string | null;
  /** 住址市 */
  homeCity: string | null;
  /** 住址县 */
  homeCounty: string | null;
  /** 详细地址 */
  homeAddress: string | null;
  /** 工资卡号 */
  cardNo: string | null;
  /** 电子邮箱 */
  email: string | null;
  /** 诊所ID */
  clinicId: number;
}

/**
 * 角色信息接口
 */
export interface Role {
  /** 角色ID */
  roleId: number;
  /** 角色名称 */
  roleName: string;
  /** 角色描述 */
  roleDesc?: string;
  /** 角色状态 */
  status?: string;
}

/**
 * 员工表单接口（新增/编辑时使用）
 */
export interface EmployeeForm {
  /** 员工ID（编辑时需要） */
  empId?: number;
  /** 工号 */
  empNo: string;
  /** 员工名称 */
  empName: string;
  /** 性别 */
  gender?: string;
  /** 在职状态 */
  isEnabled: string;
  /** 手机号 */
  phone: string;
  /** 所属科室ID */
  deptId: number;
  /** 职称 */
  title: string;
  /** 是否管理员 */
  isAdmin: string;
  /** 授权的角色ID列表 */
  roleIds: number[];
  /** 身份证号 */
  idCard?: string;
  /** 阳历生日 */
  solarBirthday?: string;
  /** 阴历生日 */
  lunarBirthday?: string;
  /** 入职日期 */
  hireDate?: string;
  /** 籍贯省 */
  nativeProvince?: string;
  /** 籍贯市 */
  nativeCity?: string;
  /** 籍贯县 */
  nativeCounty?: string;
  /** 住址省 */
  homeProvince?: string;
  /** 住址市 */
  homeCity?: string;
  /** 住址县 */
  homeCounty?: string;
  /** 详细地址 */
  homeAddress?: string;
  /** 工资卡号 */
  cardNo?: string;
  /** 电子邮箱 */
  email?: string;
}

/**
 * 员工查询参数接口
 */
export interface EmployeeQuery {
  /** 员工名称（模糊搜索） */
  empName?: string;
  /** 工号（模糊搜索） */
  empNo?: string;
  /** 手机号（模糊搜索） */
  phone?: string;
  /** 所属科室ID */
  deptId?: number;
  /** 在职状态 */
  isEnabled?: string;
  /** 是否管理员 */
  isAdmin?: string;
  /** 当前页码 */
  pageNo: number;
  /** 每页条数 */
  pageSize: number;
}

/**
 * 员工列表响应接口
 */
export interface EmployeeListResponse {
  /** 员工列表 */
  list: Employee[];
  /** 总条数 */
  total: number;
  /** 当前页 */
  pageNo: number;
  /** 每页条数 */
  pageSize: number;
  /** 总页数 */
  totalPages: number;
}

/**
 * 科室信息接口
 */
export interface Department {
  /** 科室ID */
  deptId: number;
  /** 科室名称 */
  deptName: string;
  /** 科室描述 */
  deptDesc?: string;
  /** 科室状态 */
  status?: string;
}

/**
 * 员工操作类型枚举
 */
export enum EmployeeAction {
  /** 新增 */
  ADD = 'add',
  /** 编辑 */
  EDIT = 'edit',
  /** 查看详情 */
  VIEW = 'view',
  /** 启用 */
  ENABLE = 'enable',
  /** 停用 */
  DISABLE = 'disable',
  /** 删除 */
  DELETE = 'delete'
}

/**
 * 员工状态枚举
 */
export enum EmployeeStatus {
  /** 在职 */
  ENABLED = '1',
  /** 离职 */
  DISABLED = '0'
}

/**
 * 管理员状态枚举
 */
export enum AdminStatus {
  /** 是管理员 */
  YES = '1',
  /** 不是管理员 */
  NO = '0'
}
